package persistencia.carreras.ensambladores.general;

import persistencia.compartido.MicroEnsamblador;
import modelo.geometria.Figura;
import modelo.geometria.SegmentoRecta;
import modelo.geometria.Vector;
import modelo.geometria.Rectangulo;
import modelo.geometria.Segmento;

public class EnsambladorSegmento extends MicroEnsamblador<Figura> {

	@Override
	public String escribir(Figura microEntidad) {
		String resultado = null;
		if (microEntidad instanceof Rectangulo) {
			SegmentoRecta segmento = (SegmentoRecta) microEntidad;
			Double x1 = segmento.punto1().getX();
			Double y1 = segmento.punto1().getY();
			Double x2 = segmento.punto2().getX();
			Double y2 = segmento.punto2().getY();
			
			resultado = x1 +sep+ y1 +sep+ x2 +sep+ y2; 
			resultado+= en + Segmento.class.getSimpleName();
		}
		return resultado;
	}

	public Segmento leerSegmento(String figura) {
		String[] tipo = figura.split(en);
		
		Segmento segmento = null;
		if (tipo[1].compareTo(Segmento.class.getSimpleName()) == 0) {
			String[] valores = tipo[0].split(sep);

			double x1 = Double.valueOf(valores[0]);
			double y1 = Double.valueOf(valores[1]);
			double x2 = Double.valueOf(valores[2]);
			double y2 = Double.valueOf(valores[3]);
			
			segmento = new Segmento(new Vector(x1,y1), new Vector(x2,y2));
		}
		return segmento;
	}

	@Override
	public Figura leer(String microEntidad) {
		return leerSegmento(microEntidad);
	}
}
